import java.io.File;
import java.io.IOException;

public class FileIOTest {
    public static void main(String[] args) {
        // 创建 IOTest 文件夹
        File folder = new File("IOTest");
        if (!folder.exists()) {
            if (folder.mkdir()) {
                System.out.println("文件夹 IOTest 创建成功！");
            } else {
                System.out.println("文件夹创建失败！");
                return;
            }
        }
        else System.out.println("文件夹 IOTest 已存在");

        // 创建 example.txt 文件
        File file = new File(folder, "example.txt");
        if (!file.exists()) {
            try {
                if (file.createNewFile()) {
                    System.out.println("文件 example.txt 创建成功！");
                }
            } catch (IOException e) {
                System.out.println("发生异常：" + e.getMessage());
            }
        }
        else System.out.println("文件 example.txt 已存在");

        // 递归列出所有文件
        System.out.println("\nIOTest 文件夹中的所有文件列表：");
        listFilesRecursively(folder, "");
    }

    // 递归方法
    public static void listFilesRecursively(File folder, String indent) {
        File[] files = folder.listFiles();
        if (files != null) {
            for (File f : files) {
                System.out.println(indent + (f.isDirectory() ? "[目录] " : "[文件] ") + f.getName());
                if (f.isDirectory()) {
                    listFilesRecursively(f, indent + "    "); // 缩进
                }
            }
        }
    }
}

